//#########################################################################
//                              WackiEngie
//           Copyright (c) 2014 Marc Wacker. All rights reserved.
//#########################################################################

#pragma once

#define WE_PLATFORM_WIN32 1
#define WE_PLATFORM_LINUX 2
#define WE_PLATFORM_APPLE 3

#define WE_COMPILER_MSVC 1
#define WE_COMPILER_GNUC 2
#define WE_COMPILER_INTEL 3
#define WE_COMPILER_CLANG 4

// find compiler version
#if defined(_MSC_VER)
#	define WE_COMPILER WE_COMPILER_MSVC
#	define WE_COMP_VER _MSC_VER
#elif defined(__GNUC__)
#	define WE_COMPILER WE_COMPILER_GNUC
#	define WE_COMP_VER (((__GNUC__)*100) + \
	(__GNUC_MINOR__*10) + \
	__GNUC_PATCHLEVEL__)
#elif defined(__INTEL_COMPILER)
#	define WE_COMPILER WEE_COMPILER_INTEL
#	define WE_COMP_VER __INTEL_COMPILER
#elif defined(__INTEL_clang__)
#	define WE_COMPILER WE_COMPILER_CLANG
#	define WE_COMP_VER __clang_major__
#endif

// Find the current platform
#if defined(__WIN32__) || defined(_WIN32)
#	define WE_PLATFORM WE_PLATFORM_WIN32
#elif defined(__APPLE_CC__)
#	define WE_PLATFORM WE_PLATFORM_APPLE
#else
#	define WE_PLATFORM WE_PLATFORM_LINUX
#endif


#if defined(_DEBUG) || defined(DEBUG)
#	define WE_DEBUG_MODE 1
#else
#	define WE_DEBUG_MODE 0
#endif